CXpButton Class

Theme aware push button that can also act as a toggle button and display an icon or bitmap.

Constructor

Registers the class name and creates an instance of the control.

CONSTRUCTOR CXpButton (BYVAL pWindow AS CWindow PTR, BYVAL cID AS LONG_PTR, _
   BYREF wszTitle AS WSTRING = "", BYVAL x AS LONG = 0, BYVAL y AS LONG = 0, _
   BYVAL nWidth AS LONG = 0, BYVAL nHeight AS LONG = 0, BYVAL dwStyle AS DWORD = 0, _
   BYVAL dwExStyle AS DWORD = 0, BYVAL lpParam AS LONG_PTR = 0)
Parameter Description
pWindow Pointer to the CWindow class of the parent window.
cID Control identifier.
wszTitle Optional. The button caption.
x Optional. The x-coordinate of the upper-left corner of the button relative to the upper-left corner of the parent window's client area.
y Optional. The initial y-coordinate of the upper-left corner of the button relative to the upper-left corner of the parent window's client area.
nWidth Optional. The width of the button.
nHeight Optional. The height of the button.
dwStyle Optional. The style of the button being created.<>Default styles: WS_VISIBLE OR WS_TABSTOP OR BS_PUSHBUTTON OR BS_CENTER OR BS_VCENTER.
dwExStyle Optional. The extended window style of the button being created.
lpParam Optional. Pointer to custom data.

Return value

A pointer to the new instance of the class.

Helper Procedure: AfxCXpButtonPtr

Returns a pointer to the CXpButton class given the handle of its associated window.

FUNCTION AfxCXpButtonPtr (BYVAL hwnd AS HWND) AS CXpButton PTR
FUNCTION AfxCXpButtonPtr (BYVAL hParent AS HWND, BYVAL cID AS LONG) AS CXpButton PTR
Parameter Description
hwnd Handle of the window associated with the button control. Call the hWindow method of the CXpButton class to retrieve it.
hParent The handle of the parent window of the control.
cID The identifier of the control.

Return value

A pointer to the CXpButton class.

Methods

Parameter Description
DisableTheming Disables theming.
EnableTheming Enables theming.
GetImage Returns the handle of the image.
hWindow Returns the handle of the button.
IsThemed Returns CTRUE if themes are enabled or FALSE otherwise.
Redraw Redraws the button.
SetBitmap Sets the bitmap for the button.
SetBitmapFromFile Loads an bitmap from file and sets it as the image of tbe button.
SetIcon Sets the icon for the button.
SetIconFromFile Loads an icon from file and sets it as the image of tbe button.
SetImage Sets the image for the button.
SetImageFromFile Loads an image from file and sets it as the image of the button.
SetImageFromRes Loads an image from a resource file and sets it as the image of the button.

Properties

Parameter Description
BkBrush Returns the background color brush.
ButtonBkColor Gets/sets the background color of button.
ButtonBkColorDown Gets/sets the background color of button when it is down (pressed or toggled).
ButtonBkColorHot Gets/sets the background color of button when it is hot (the mouse is over it).
ButtonState Returns the button state.
Cursor Gets/sets the cursor for the button.
DisabledImageHandle Returns the handle of the disabled image.
Font Gets/sets the handle of the font used by the button.
HotImageHandle Returns the handle of the hot image.
ImageHeight Gets/sets the heigth of the image.
ImageMargin Gets/sets the image margin.
ImagePos Gets/sets the image position.
ImageType Returns the image type
ImageWidth Gets/sets the width of the image.
NormalImageHandle Returns the handle of the normal image.
TextBkColor Gets/sets the text background color of the button.
TextBkColorDown Gets/sets the text background color of the button when it is down (pressed).
TextForeColor Gets/sets the text foreground color of the button.
TextForeColorDown Gets/sets the text foreground color of the button when it is down (pressed).
TextFormat Gets/sets the method of formatting the text.
TextMargin Gets/sets the margin of the text of the button.
Toggle Gets/sets button to toggle state (CTRUE) or to pushbutton state (FALSE).
ToggleState Gets/sets the toggle state: pushed (CTRUE) or unpushed (FALSE).

Example

#define UNICODE
#define _WIN32_WINNT &h0602
#INCLUDE ONCE "Afx/CWindow.inc"
#INCLUDE ONCE "Afx/CXpButton.inc"
USING Afx

CONST IDC_BUTTON1 = 1001
CONST IDC_BUTTON2 = 1002
CONST IDC_BUTTON3 = 1003

DECLARE FUNCTION WinMain (BYVAL hInstance AS HINSTANCE, _
                          BYVAL hPrevInstance AS HINSTANCE, _
                          BYVAL szCmdLine AS ZSTRING PTR, _
                          BYVAL nCmdShow AS LONG) AS LONG

   END WinMain(GetModuleHandleW(NULL), NULL, COMMAND(), SW_NORMAL)

' // Forward declaration
DECLARE FUNCTION WndProc (BYVAL hwnd AS HWND, BYVAL uMsg AS UINT, BYVAL wParam AS WPARAM, BYVAL lParam AS LPARAM) AS LRESULT

' ========================================================================================
' Main
' ========================================================================================
FUNCTION WinMain (BYVAL hInstance AS HINSTANCE, _
                  BYVAL hPrevInstance AS HINSTANCE, _
                  BYVAL szCmdLine AS ZSTRING PTR, _
                  BYVAL nCmdShow AS LONG) AS LONG

   ' // Set process DPI aware
   AfxSetProcessDPIAware

   ' // Create the main window
   DIM pWindow AS CWindow
   pWindow.Create(NULL, "XpButton example", @WndProc)
   pWindow.SetClientSize(215, 142)
   pWindow.Center

   ' // Create the first button
   DIM pXpButton1 AS CXpButton = CXpButton(@pWindow, IDC_BUTTON1, "&Hot", 50, 10, 114, 34)
   ' // Load a png icon from file (remember to change tha path of the file)
   pXpButton1.SetImageFromFile(ExePath & "/arrow_left_64.png", XPBI_NORMAL)
   ' // Load a Windows predefined icon as the "hot" image
   pXpButton1.SetIcon LoadIcon(NULL, IDI_QUESTION), XPBI_HOT
   ' // Change the cursor shape
   pXpButton1.SetCursor LoadCursor(NULL, IDC_CROSS)
   ' // Set a margin of 10 dpi units (pixels x scaling ratio)
   pXpButton1.SetImageMargin 10

   ' // Create the second button
   DIM pXpButton2 AS CXpButton = CXpButton(@pWindow, IDC_BUTTON2, "&Cancel", 50, 50, 114, 34)
   ' // Load a Windows predefined icon
   pXpButton2.SetIcon LoadIcon(NULL, IDI_ERROR), XPBI_NORMAL
   pXpButton2.SetImagePos XPBI_RIGHT OR XPBI_VCENTER
   pXpButton2.SetTextFormat DT_LEFT OR DT_VCENTER OR DT_SINGLELINE
'   EnableWindow pXpButton2.hWindow, FALSE   ' Disable the button

   ' // Create a coloured button
   DIM pXpButton3 AS CXpButton = CXpButton(@pWindow, IDC_BUTTON3, "&Coloured Button", 50, 90, 114, 34, WS_VISIBLE OR WS_TABSTOP OR BS_PUSHBUTTON OR BS_CENTER OR BS_VCENTER OR BS_FLAT)
   ' // Disable theming
   pXpButton3.DisableTheming
   ' // Set the background color to blue
   pXpButton3.SetButtonBkColor BGR(0, 0, 255)
   ' // Set the background color when pressed to yellow
   pXpButton3.SetButtonBkColorDown BGR(255, 255, 0)
   ' // Set the text foreground color to yellow
   pXpButton3.SetTextForeColor BGR(255, 255, 0)
   ' // Set the text background color to blue
   pXpButton3.SetTextBkColor BGR(0, 0, 255)
   ' // Set the text foreground color when pressed to white
   pXpButton3.SetTextForeColorDown BGR(255, 255, 255)
   ' // Set the text background color when pressed to red
   pXpButton3.SetTextBkColorDown BGR(255, 0, 0)
   ' // Set the text backround color when pressed to red
   pXpButton3.SetTextBkColorDown BGR(255, 0, 0)
   ' // Set the text format (cnetered and single line)
   pXpButton3.TextFormat = DT_CENTER OR DT_VCENTER OR DT_SINGLELINE
' pXpButton3.SetToggle TRUE   ' make it a toggle button

   ' // Set the focus in the first button
   SetFocus pXpButton1.hWindow

   ' // Dispatch Windows messages
   FUNCTION = pWindow.DoEvents(nCmdShow)

END FUNCTION
' ========================================================================================

' ========================================================================================
' Main window callback procedure
' ========================================================================================
FUNCTION WndProc (BYVAL hwnd AS HWND, BYVAL uMsg AS UINT, BYVAL wParam AS WPARAM, BYVAL lParam AS LPARAM) AS LRESULT

   SELECT CASE uMsg

      CASE WM_COMMAND
         SELECT CASE GET_WM_COMMAND_ID(wParam, lParam)
            CASE IDC_BUTTON1, IDC_BUTTON2, IDC_BUTTON3
               IF GET_WM_COMMAND_CMD(wParam, lParam) = BN_CLICKED THEN
                  ' AfxMsg "Button clicked"
                  EXIT FUNCTION
               END IF

            CASE IDCANCEL
               ' // If ESC key pressed, close the application by sending an WM_CLOSE message
               IF GET_WM_COMMAND_CMD(wParam, lParam) = BN_CLICKED THEN
                  SendMessageW hwnd, WM_CLOSE, 0, 0
                  EXIT FUNCTION
               END IF
         END SELECT

        CASE WM_DESTROY
         ' // Ends the application by sending a WM_QUIT message
         PostQuitMessage(0)
         EXIT FUNCTION

   END SELECT

   ' // Default processing of Windows messages
   FUNCTION = DefWindowProcW(hWnd, uMsg, wParam, lParam)

END FUNCTION
' ========================================================================================

DisableTheming

Disables theming.

SUB DisableTheming

EnableTheming

Enables theming.

SUB EnableTheming

GetImage

Returns the handle of the image.

FUNCTION GetImage (BYVAL ImageState AS LONG) AS HANDLE
Parameter Description
ImageState One of the following values:
XPBI_NORMAL = 1, XPBI_HOT = 2, XPBI_DISABLED = 3

Return value

Returns the handle of the requested image.

hWindow

Returns the handle of the button.

FUNCTION hWindow () AS HWND

IsThemed

Returns CTRUE if themes are enabled or FALSE otherwise.

FUNCTION IsThemed () AS LONG

Redraw

Redraws the button.

SUB Redraw

SetBitmap

Sets the bitmap for the button.

SUB SetBitmap (BYVAL hBitmap AS HBITMAP, _
   BYVAL ImageState AS LONG, BYVAL fRedraw AS LONG = FALSE)
Parameter Description
hBitmap Handle to the bitmap.
ImageState One of the following values:
XPBI_NORMAL = 1, XPBI_HOT = 2, XPBI_DISABLED = 3
fRedraw Optional. CTRUE or FALSE (redraws the button to reflect the changes).

SetBitmapFromFile

Loads a bitmap from file and sets it as the image of tbe button.

SUB SetBitmapFromFile (BYVAL pwszPath AS WSTRING PTR, _
   BYVAL ImageState AS LONG, BYVAL fRedraw AS LONG = FALSE)
Parameter Description
pwszPath Full path of the bitmap's file.
ImageState One of the following values:
XPBI_NORMAL = 1, XPBI_HOT = 2, XPBI_DISABLED = 3
fRedraw Optional. CTRUE or FALSE (redraws the button to reflect the changes).

SetIcon

Sets the icon for the button.

SUB SetIcon (BYVAL hIcon AS HICON, _
   BYVAL ImageState AS LONG, BYVAL fRedraw AS LONG = FALSE)
Parameter Description
hIcon Handle to the icon.
ImageState One of the following values:
XPBI_NORMAL = 1, XPBI_HOT = 2, XPBI_DISABLED = 3
fRedraw Optional. CTRUE or FALSE (redraws the button to reflect the changes).

SetIconFromFile

Loads an icon from file and sets it as the image of tbe button.

SUB SetIconFromFile (BYVAL pwszPath AS WSTRING PTR, _
   BYVAL ImageState AS LONG, BYVAL fRedraw AS LONG = FALSE)
Parameter Description
pwszPath Full path of the icon's file.
ImageState One of the following values:
XPBI_NORMAL = 1, XPBI_HOT = 2, XPBI_DISABLED = 3
fRedraw Optional. CTRUE or FALSE (redraws the button to reflect the changes).

SetImage

Sets the image for the button.

SUB SetImage (BYVAL hImage AS HANDLE, BYVAL ImageType AS LONG, _
   BYVAL ImageState AS LONG, BYVAL fRedraw AS LONG = FALSE)
Parameter Description
hImage Handle to the image.
ImageType IMAGE_ICON or IMAGE_BITMAP.
ImageState One of the following values:
XPBI_NORMAL = 1, XPBI_HOT = 2, XPBI_DISABLED = 3
fRedraw Optional. CTRUE or FALSE (redraws the button to reflect the changes).

SetImageFromFile

Loads an image from file and sets it as the image of the button.

SUB SetImageFromFile (BYREF wszPath AS WSTRING, BYVAL ImageState AS LONG, _
   BYVAL dimPercent AS LONG = 0, BYVAL bGrayScale AS LONG = FALSE, _
   BYVAL fRedraw AS LONG = FALSE)
Parameter Description
wszPath Full path of the image's file.
ImageState One of the following values:
XPBI_NORMAL = 1, XPBI_HOT = 2, XPBI_DISABLED = 3
dimPercent Percent of dimming (1-99)
bGrayScale CTRUE or FALSE. Convert to gray scale.
fRedraw Optional. CTRUE or FALSE (redraws the button to reflect the changes).

SetImageFromRes

Loads an image from file and sets it as the image of the button.

SUB SetImageFromRes (BYVAL hInstance AS HINSTANCE, BYREF wszImageName AS WSTRING, _
   BYVAL ImageState AS LONG, BYVAL dimPercent AS LONG = 0, _
   BYVAL bGrayScale AS LONG = FALSE, BYVAL fRedraw AS LONG = FALSE)
Parameter Description
hInstance A handle to the module whose portable executable file or an accompanying MUI file contains the resource. If this parameter is NULL, the function searches the module used to create the current process.
wszImageName Name of the image in the resource file (.RES). If the image resource uses an integral identifier, wszImage should begin with a number symbol (#) followed by the identifier in an ASCII format, e.g., "#998". Otherwise, use the text identifier name for the image. Only images embedded as raw data (type RCDATA) are valid. These must be icons in format .png, .jpg, .gif, .tiff.
ImageState One of the following values:
XPBI_NORMAL = 1, XPBI_HOT = 2, XPBI_DISABLED = 3
dimPercent Percent of dimming (1-99)
bGrayScale CTRUE or FALSE. Convert to gray scale.
fRedraw Optional. CTRUE or FALSE (redraws the button to reflect the changes).

BkBrush

Returns the background color brush.

PROPERTY BkBrush () AS HBRUSH

ButtonBkColor

Gets/sets the background color of button.

PROPERTY ButtonBkColor () AS COLORREF
PROPERTY ButtonBkColor (BYVAL bkColor AS COLORREF)
Parameter Description
bkColor A COLORREF color value. Use the FreeBasic BGR function.

Return value

The background color of the button as a COLORREF value.

Remarks

Only available if the button is not themed. Call DisableTheming to disable theming.

ButtonBkColorDown

Gets/sets the background color of button when it is down (pressed or toggled).

PROPERTY ButtonBkColorDown () AS COLORREF
PROPERTY ButtonBkColorDown (BYVAL bkColorDown AS COLORREF)
Parameter Description
bkColorDown A COLORREF color value. Use the FreeBasic BGR function.

Return value

The background color of button when it is down (pressed or toggled).

Remarks

Only available if the button is not themed. Call DisableTheming to disable theming.

ButtonBkColorHot

Gets/sets the background color of button when it is hot (the mouse is over it).

PROPERTY ButtonBkColorHot () AS COLORREF
PROPERTY ButtonBkColorHot (BYVAL bkColorHot AS COLORREF)
Parameter Description
bkColorHot A COLORREF color value. Use the FreeBasic BGR function.

Return value

The background color of button when it is hot (the mouse is over it).

Remarks

Only available if the button is not themed. Call DisableTheming to disable theming.

ButtonState

Returns the button state.

PROPERTY ButtonState () AS LONG

Return value

The button state: Pushed (BST_PUSHED) or unpushed.

Cursor

Gets/sets the cursor for the button.

PROPERTY Cursor () AS HCURSOR
PROPERTY Cursor (BYVAL hCursor AS HCURSOR)
Parameter Description
hCursor Handle to the cursor.

Return value

The cursor handle.

NormalImageHandle

Returns the handle of the normal image.

PROPERTY NormalImageHandle () AS HANDLE

DisabledImageHandle

Returns the handle of the disabled image.

PROPERTY DisabledImageHandle () AS HANDLE

HotImageHandle

Returns the handle of the hot image.

PROPERTY HotImageHandle () AS HANDLE

Font

Gets/sets the handle of the font used by the button.

PROPERTY Font () AS HFONT
PROPERTY Font (BYVAL hFont AS HFONT)
Parameter Description
hFont Handle to the font.

Return value

The font handle.

ImageHeight

Gets/sets the heigth of the image.

PROPERTY ImageHeight () AS LONG
PROPERTY ImageHeight (BYVAL nHeight AS LONG)
Parameter Description
nHeight Height of the image, in pixels.

Return value

The height of the image, in pixels.

ImageMargin

Gets/sets the image margin.

PROPERTY ImageMargin () AS LONG
PROPERTY ImageMargin (BYVAL nMargin AS LONG)
Parameter Description
nMargin Margin (in pixels).

Return value

The margin of the image, in pixels.

ImagePos

Gets/sets the image position.

PROPERTY ImagePos () AS LONG
PROPERTY ImagePos (BYVAL nPos AS LONG)
Parameter Description
nPos The position of the image. Can be one of the following values:
Value Description
XPBI_NONE No image.
XPBI_LEFT Left side (default).
XPBI_RIGHT Right side.
XPBI_CENTER Center.
XPBI_VCENTER Vertically centered.
XPBI_TOP Top.
XPBI_BOTTOM Bottom.
XPBI_ABOVE Above the text.
XPBI_BELOW Below the text.
XPBI_CENTECENTER Center-center (no text).

Return value

The position of th image.

ImageType

Returns the image type

PROPERTY ImageType () AS LONG

Return value

The image type: IMAGE_ICON or IMAGE_BITMAP.

ImageWidth

Gets/sets the width of the image.

PROPERTY ImageWidth () AS LONG
PROPERTY ImageWidth (BYVAL nWidth AS LONG)
Parameter Description
nWidth Margin (in pixels).

Return value

The width of the image, in pixels.

TextBkColor

Gets/sets the text background color of the button.

PROPERTY TextBkColor () AS COLORREF
PROPERTY TextBkColor (BYVAL textColor AS COLORREF)
Parameter Description
textColor A COLORREF color value. Use the FreeBasic BGR function.

Return value

The text background color of the button as a COLORREF value.

TextBkColorDown

Gets/sets the text background color of the button when it is down (pressed).

PROPERTY TextBkColorDown () AS COLORREF
PROPERTY TextBkColorDown (BYVAL textColor AS COLORREF)
Parameter Description
textColor A COLORREF color value. Use the FreeBasic BGR function.

Return value

The text background color of the button when it is down (pressed) as a COLORREF value.

TextForeColor

Gets/sets the text foreground color of the button.

PROPERTY TextForeColor () AS COLORREF
PROPERTY TextForeColor (BYVAL textColor AS COLORREF)
Parameter Description
textColor A COLORREF color value. Use the FreeBasic BGR function.

Return value

The text foreground color of the button as a COLORREF value.

TextForeColorDown

Gets/sets the text foreground color of the button when it is down (pressed).

PROPERTY TextForeColorDown () AS COLORREF
PROPERTY TextForeColorDown (BYVAL textColor AS COLORREF)
Parameter Description
textColor A COLORREF color value. Use the FreeBasic BGR function.

Return value

The text foreground color of the button when it is down (pressed) as a COLORREF value.

TextFormat

Gets/sets the method of formatting the text.

PROPERTY TextFormat () AS DWORD
PROPERTY TextFormat (BYVAL dwTextFlags AS DWORD)
Parameter Description
dwTextFlags Specifies the method of formatting the text. This parameter can be one or more of the following values:
Value Meaning
DT_BOTTOM Justifies the text to the bottom of the rectangle. This value is used only with the DT_SINGLELINE value.
DT_CALCRECT Determines the width and height of the rectangle. If there are multiple lines of text, DrawText uses the width of the rectangle pointed to by the lpRect parameter and extends the base of the rectangle to bound the last line of text. If the largest word is wider than the rectangle, the width is expanded. If the text is less than the width of the rectangle, the width is reduced. If there is only one line of text, DrawText modifies the right side of the rectangle so that it bounds the last character in the line. In either case, DrawText returns the height of the formatted text but does not draw the text.
DT_CENTER Centers text horizontally in the rectangle.
DT_EDITCONTROL Duplicates the text-displaying characteristics of a multiline edit control. Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.
DT_END_ELLIPSIS For displayed text, if the end of a string does not fit in the rectangle, it is truncated and ellipses are added. If a word that is not at the end of the string goes beyond the limits of the rectangle, it is truncated without ellipses. The string is not modified unless the DT_MODIFYSTRING flag is specified. Compare with DT_PATH_ELLIPSIS and DT_WORD_ELLIPSIS.
DT_EXPANDTABS Expands tab characters. The default number of characters per tab is eight. The DT_WORD_ELLIPSIS, DT_PATH_ELLIPSIS, and DT_END_ELLIPSIS values cannot be used with the DT_EXPANDTABS value.
DT_EXTERNALLEADING Includes the font external leading in line height. Normally, external leading is not included in the height of a line of text.
DT_HIDEPREFIX Includes the font external leading in line height. Normally, external leading is not included in the height of a line of text.
Windows 2000/XP: Ignores the ampersand (&) prefix character in the text. The letter that follows will not be underlined, but other mnemonic-prefix characters are still processed.
Example: input string: "A&bc&&d", normal: "Abc&d", DT_HIDEPREFIX: "Abc&d". Compare with DT_NOPREFIX and DT_PREFIXONLY.
DT_INTERNAL Uses the system font to calculate text metrics.
DT_LEFT Aligns text to the left.
DT_MODIFYSTRING Modifies the specified string to match the displayed text. This value has no effect unless DT_END_ELLIPSIS or DT_PATH_ELLIPSIS is specified.
DT_NOCLIP Draws without clipping. DrawText is somewhat faster when DT_NOCLIP is used.
DT_NOFULLWIDTHCHARBREAK Windows 98/Me, Windows 2000/XP: Prevents a line break at a DBCS (double-wide character string), so that the line breaking rule is equivalent to SBCS strings. For example, this can be used in Korean windows, for more readability of icon labels. This value has no effect unless DT_WORDBREAK is specified.
DT_NOPREFIX Uses the system font to calculate text metrics.Turns off processing of prefix characters. Normally, DrawText interprets the mnemonic-prefix character & as a directive to underscore the character that follows, and the mnemonic-prefix characters && as a directive to print a single &. By specifying DT_NOPREFIX, this processing is turned off.
Example: input string: "A&bc&&d", normal: "Abc&d", DT_NOPREFIX: "A&bc&&d". Compare with DT_HIDEPREFIX and DT_PREFIXONLY.
DT_PATH_ELLIPSIS For displayed text, replaces characters in the middle of the string with ellipses so that the result fits in the specified rectangle. If the string contains backslash () characters, DT_PATH_ELLIPSIS preserves as much as possible of the text after the last backslash. The string is not modified unless the DT_MODIFYSTRING flag is specified. Compare with DT_END_ELLIPSIS and DT_WORD_ELLIPSIS.
DT_PREFIXONLY Windows 2000/XP: Draws only an underline at the position of the character following the ampersand (&) prefix character. Does not draw any other characters in the string.
Example: input string: "A&bc&&d", normal: "Abc&d", DT_PREFIXONLY: " _ ". Compare with DT_HIDEPREFIX and DT_NOPREFIX.
DT_RIGHT Aligns text to the right.
DT_RTLREADING Layout in right-to-left reading order for bi-directional text when the font selected into the hdc is a Hebrew or Arabic font. The default reading order for all text is left-to-right.
DT_SINGLELINE Displays text on a single line only. Carriage returns and line feeds do not break the line.
DT_TABSTOP Sets tab stops. Bits 15-8 (high-order byte of the low-order word) of the uFormat parameter specify the number of characters for each tab. The default number of characters per tab is eight. The DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIP, and DT_NOPREFIX values cannot be used with the DT_TABSTOP value.
DT_TOP Justifies the text to the top of the rectangle.
DT_VCENTER Centers text vertically. This value is used only with the DT_SINGLELINE value.
DT_WORDBREAK Breaks words. Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-line feed sequence also breaks the line. If this is not specified, output is on one line.
DT_WORD_ELLIPSIS Truncates any word that does not fit in the rectangle and adds ellipses. Compare with DT_END_ELLIPSIS and DT_PATH_ELLIPSIS.

Default value: DT_CENTER OR DT_VCENTER OR DT_SINGLELINE.

Return value

The method of formatting the text.

TextMargin

Gets/sets the the margin of the text of the button.

PROPERTY TextMargin () AS LONG
PROPERTY TextMargin (BYVAL nMargin AS LONG)
Parameter Description
nMargin Margin (in pixels).

Return value

The text margin.

Toggle

Gets/sets button to toggle state (TRUE) or to pushbutton state (FALSE).

PROPERTY Toggle () AS LONG
PROPERTY Toggle (BYVAL fToggle AS LONG)
Parameter Description
fToggle Toggled state (CTRUE or FALSE).

Return value

Returns CTRUE if the button is toggled or FALSE otherwise.

ToggleState

Gets/sets the toggle state: pushed (CTRUE) or unpushed (FALSE).

PROPERTY ToggleState () AS LONG
PROPERTY ToggleState (BYVAL fState AS LONG)
Parameter Description
fState Toggle state (TRUE or FALSE).

Return value

Returns CTRUE if the button is toggled or FALSE otherwise.

Return value

Returns CTRUE if the button is toggled or FALSE otherwise.